//package com.baixun.gasadmin.controller;
//
//import com.baixun.gascommon.utils.R;
//import com.baixun.gasentity.dto.AiAlarmDTO;
//import com.baixun.gasentity.vo.VideoPlaybackVO;
//import com.baixun.gassystem.service.VideoPlaybackService;
//import com.baomidou.mybatisplus.core.metadata.IPage;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
//import io.swagger.annotations.ApiParam;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.format.annotation.DateTimeFormat;
//import org.springframework.web.bind.annotation.GetMapping;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RequestParam;
//import org.springframework.web.bind.annotation.RestController;
//
//import java.time.LocalDateTime;
//import java.util.List;
//
//@RestController
//@RequestMapping("/video-playback")
//@Api(tags = "视频监控")
//public class VideoPlaybackController {
//
//    private static final Logger log = LoggerFactory.getLogger(VideoPlaybackController.class);
//
//    @Autowired
//    private VideoPlaybackService videoPlaybackService;
//
//    /**
//     * 获取视频播放链接
//     * 根据监控点位ID、协议类型和时间范围，获取对应的视频播放链接
//     *
//     * @param pointId  监控点位 ID
//     * @param protocol 协议类型
//     * @param page     当前页码，默认为1
//     * @param size     每页显示数量，默认为4
//     * @return 返回包含视频播放链接列表的响应对象
//     */
//    @ApiOperation(value = "视频监控", notes = "根据监控点位ID、协议类型和时间范围，获取对应的视频播放链接")
//    @GetMapping("/getPlaybackLinks")
//    public R<List<VideoPlaybackVO>> getPlaybackLinks(
//            @ApiParam(value = "监控点位 ID", required = true) @RequestParam Long pointId,
//            @ApiParam(value = "协议类型", required = true) @RequestParam String protocol,
//            @ApiParam(value = "当前页码", required = false, defaultValue = "1") @RequestParam(value = "page", required = false) Integer page,
//            @ApiParam(value = "每页显示数量", required = false, defaultValue = "9") @RequestParam(value = "size", required = false) Integer size
//    ) {
//        // 调用业务层服务获取视频播放链接列表
//        List<VideoPlaybackVO> playbackLinks = (List<VideoPlaybackVO>) videoPlaybackService.getVideoPlaybackByPointAndProtocol(page, size, pointId, protocol);
//
//        // 记录日志信息，记录返回的视频播放链接数量
//        log.info("Returning {} video playback links", playbackLinks != null ? playbackLinks.size() : 0);
//
//        // 返回包含视频播放链接列表的响应对象
//        return R.ok((IPage<List<VideoPlaybackVO>>) playbackLinks);
//    }
//
//    /**
//     * 分页查询历史视频回放记录，按时间范围筛选
//     *
//     * @param page      当前页码
//     * @param size      每页显示数量
//     * @param pointId   监控点位ID
//     * @param startTime 查询开始时间
//     * @param endTime   查询结束时间
//     * @return 分页的历史视频回放记录
//     */
//    @ApiOperation(value = "无人机监控", notes = "历史视频回放记录")
//    @GetMapping("/playback/records")
//    public R getHistoryPlaybackRecords(
//            @ApiParam(value = "当前页码", required = false, defaultValue = "1") @RequestParam(value = "page", required = false) Integer page,
//            @ApiParam(value = "每页显示数量", required = false, defaultValue = "4") @RequestParam(value = "size", required = false) Integer size,
//            @ApiParam(value = "监控点位ID", required = true) @RequestParam Long pointId,
//            @ApiParam(value = "查询开始时间", required = true) @RequestParam String startTime,
//            @ApiParam(value = "查询结束时间", required = true) @RequestParam String endTime, @RequestParam String protocol) {
//
//        // 调用业务层方法分页查询历史视频回放记录
//        IPage<VideoPlaybackVO> playbackPage = videoPlaybackService.selectHistoryPlaybackRecords(page, size, startTime, endTime, pointId, protocol);
//
//        // 返回分页结果
//        return R.ok(playbackPage);
//    }
//
//
//    /**
//     * 查询视频播放记录
//     * 根据监控点位ID和时间查询视频播放记录
//     *
//     * @param pointId  监控点位 ID
//     * @param date     查询时间
//     * @param page     当前页码，默认值为1
//     * @param size     每页显示数量，默认值为4
//     * @param protocol 协议类型
//     * @return 返回分页查询结果
//     */
//    @ApiOperation(value = "执法仪监控", notes = "根据监控点位ID和时间查询视频播放记录")
//    @GetMapping("/playback/by-date")
//    public R<VideoPlaybackVO> getPlaybackByDate(
//            @ApiParam(value = "监控点位 ID", required = true) @RequestParam Long pointId,
//            @ApiParam(value = "查询时间", required = true) @RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime date,
//            @ApiParam(value = "当前页码", required = false, defaultValue = "1") @RequestParam(value = "page", required = false) Integer page,
//            @ApiParam(value = "每页显示数量", required = false, defaultValue = "9") @RequestParam(value = "size", required = false) Integer size,
//            @ApiParam(value = "协议类型", required = true) @RequestParam String protocol
//    ) {
//        // 调用业务层方法进行分页查询
//        IPage<VideoPlaybackVO> playbackPage = videoPlaybackService.selectPlaybackByDate(pointId, date, page, size, protocol);
//
//        // 返回分页结果
//        return R.ok(playbackPage);
//    }
//
//}
//
